package com.jxs.easysecurity.http.spring;

import com.jxs.easysecurity.session.Session;
import org.springframework.web.method.HandlerMethod;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 当用{@link LoginUser}标识请求方法时，如果提供了过滤器，那么可自己再做一次验证规则。
 * 应用场景：某个方法只要登录即可访问，但用户必须是某种类型，如后台用户登录即可访问，前台会员不行。
 *
 * @see LoginUser
 * @author jiangxingshang
 * @since 17/11/28
 */
public interface LoginUserFilter {

    /**
     *
     * @param request
     * @param response
     * @param handlerMethod
     * @param session
     * @return 返回true表示验证通过（可请求资源），返回false表示权限不足
     */
    boolean accept(HttpServletRequest request, HttpServletResponse response, HandlerMethod handlerMethod, Session session);
}
